hardware issues outsourcing developers consulting website design bpo medical device software embedded software software embedded outsource development medical firmware open source medical device firmware embedded systems upgrade pc projects